n = 6
row = [1] * n  # 一次性开辟足够的空间

for i in range(n):
    offset = n - i
    z = 1  # 因为会有覆盖影响计算，所以引入一个临时变量
    for j in range(1, i // 2 + 1):  # 对称性
        val = z + row[j]
        row[j], z = val, row[j]
        if i != 2 * j:
            row[-j - offset] = val
    print(row[:i + 1])
